package com.kevinkk.tree;

/**
 * 给定一个二叉树，找出其最小深度。
 * 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
 *
 * 这道题不能直接简单的 Math.min(left, right) + 1
 * 需要对只有一个孩子的二叉树节点进行单独处理
 */

public class MinimumDepthOfBinaryTree {
    class Solution {
        public int minDepth(TreeNode root) {
            if(root == null) return 0;
            int left = minDepth(root.left);
            int right = minDepth(root.right);

            if(root.left == null) return right + 1;
            if(root.right == null) return left + 1;
            return Math.min(left, right) + 1;
        }
    }

}
